package com.sangcomz.fishbun.ui.album;

import com.sangcomz.fishbun.adapter.image.ImageAdapter;
import com.sangcomz.fishbun.ui.album.model.Album;
import com.sangcomz.fishbun.ui.album.model.AlbumMenuViewData;
import com.sangcomz.fishbun.ui.album.model.AlbumViewData;
import ohos.utils.net.Uri;

import java.util.ArrayList;
import java.util.List;

public interface AlbumContract {
    interface View {
        void showAlbumList(List<Album> albumList, ImageAdapter imageAdapter, AlbumViewData albumViewData);

        void showEmptyView();

        void setRecyclerViewSpanCount(AlbumViewData albumViewData);

        void setRecyclerView(AlbumViewData albumViewData);

        void setToolBar(AlbumViewData albumViewData);

        void changeToolbarTitle(int selectedImageCount, AlbumViewData albumViewData);

        void finishActivityWithResult(List<Uri> selectedImages);

        void refreshAlbumItem(int position, ArrayList<Uri> imagePath);

        void scanAndRefresh();

        void showNothingSelectedMessage(String nothingSelectedMessage);

        void showMinimumImageMessage(int currentSelectedCount);

        void takePicture(String saveDir);

        void saveImage();
    }

    interface Presenter {
        void loadAlbumList();

        void takePicture();

        String getPathDir();

        void release();

        void getDesignViewData();

        void onResume();

        void finish();

        void refreshAlbumItem(int position, ArrayList<Uri> addedPathList);

        void getAlbumMenuViewData(CallBack callback);

        void onClickMenuDone();

        void onSuccessTakePicture();

        interface CallBack{
            void Call(AlbumMenuViewData data);
        }
    }
}